<?php

/**
 * Controlador de la parte de etiquetas.
 * Los parametros se le han de pasar por GET
 *
 * @author Israel Mora e Ismael Garcia
 */

include_once (realpath(dirname(__FILE__)) .'/../modelos/label.class.php');

$control = new control_label();


class control_label {

	private $_action;
	private $_label;
        private $_capa;
	public function __construct($capa = 'principal'){
		$this->_capa = $capa;
		$this->_action = isset($_GET["action"]) ?  $_GET["action"] : 'list';
		$this->_label = new Label();
                
		switch($this->_action){
			case 'list'   : $this->listLabel();     break;
			case 'show'   : $this->showLabel();     break;
			case 'edit'   : $this->editLabel();     break;
			case 'new'    : $this->newLabel();      break;
			case 'insert' : $this->insertLabel();   break;
			case 'update' : $this->updateLabel();   break;
			case 'delete' : $this->deleteLabel();   break;
			default       : $this->listLabel();
		}
	}
        /**
         * Lista todas las labels de la BD 
         */
	public function listLabel(){
		$capa = $this->_capa;
		$files = $this->_label->listRecords();
                
                $new  = 'controladores/control_label.class.php?action=new';
		$show   = 'controladores/control_label.class.php?action=show';
		$edit   = 'controladores/control_label.class.php?action=edit';
		$delete = 'controladores/control_label.class.php?action=delete';
		include '../vistas/label_manager.php';		
	}
        
        /**
         * Muestra la información en relación a la label seleccionada 
         * Precisa el parametro id por $_GET
         * @param Int $_GET['id'] id etiqueta 
         */
	public function showLabel(){
		$capa = $this->_capa;
		if(isset($_GET["id"]) && $_GET["id"] != ""){ 
			$fila = $this->_label->getRecord($_GET["id"]);
                        $script = 'controladores/control_label.class.php?action=list';
			include (realpath(dirname(__FILE__)). '/../vistas/show_label.php');
                        
		} 
	}

        /**
         * Muestra un formulario para poder modificar la label seleccionada
         * Precisa el parametro id por $_GET 
         * @param Int $_GET['id'] id etiqueta 
         */
	public function editLabel(){
		$capa = $this->_capa;
		if(isset($_GET["id"]) && $_GET["id"] != ""){ 
			$fila = $this->_label->getRecord($_GET["id"]);				
			$action = $this->_action;
			$script = 'controladores/control_label.class.php?action=update&id='.$_GET["id"];
			include (realpath(dirname(__FILE__)) . '/../vistas/label_editor.php');	
                    
		}	
	}
        
        /**
         * Muestra un formulario para poder crear una label nueva
         */
	public function newLabel(){	
		$capa = $this->_capa;
		$fila = $this->_label->listRecords();				
		$action = $this->_action;
		$script = 'controladores/control_label.class.php?&action=insert';
		include (realpath(dirname(__FILE__)) .'/../vistas/label_editor.php');	

	}
        
        /**
         * Modifica la información o la label en si en la BD 
         * Precisa el parametro id por $_GET 
         * @param Int $_GET['id'] id etiqueta 
         */
	public function updateLabel(){
		if(isset($_GET["id"]))
                        $_POST["id"] = $_GET["id"];
			$this->_label->updateRecord($_POST);
		$this->listLabel();
	}
	
        /**
         * Borra la el label seleccionado de la BD 
         * Precisa el parametro id por $_GET 
         * @param Int $_GET['id'] id etiqueta 
         */
	public function deleteLabel(){
		if(isset($_GET["id"])) $this->_label->deleteRecord($_GET["id"]); 
		$this->listLabel();
	}
        
        /**
         *  Añade una nueva label en la BD
         */
	public function insertLabel(){
		$this->_label->insertRecord($_POST); 				
		$this->listLabel();
	}	
}

?>
